struct Base 
{
    Base() : a(250) {}
    Base(int num) : a(num) {}
    //c++98中
    int a;
    //int b = 1;	//类的非静态成员，必须在构造函数中进行初始化
    //static int c = 0;	//类的静态成员，必须在类的外部进行初始化
    //static const double d = 3.14;	//类的静态常量成员，但不是整形或者枚举，无法通过编译，如果使用 g++ 可能发现就地初始化 double 类型的静态常量是可以通过编译的，不过这实际是 GNU 对C++的一个扩展，并不遵从C++ 标准
    //static const char* const e = "i am luffy";	//类的静态常量成员，但不是整形或者枚举，无法通过编译
    static int c;	//类的静态成员，必须在类的外部进行初始化
    static const double d;	//类的静态常量成员，但不是整形或者枚举，无法通过编译，如果使用 g++ 可能发现就地初始化 double 类型的静态常量是可以通过编译的，不过这实际是 GNU 对C++的一个扩展，并不遵从C++ 标准
    static const char* const e ;	//类的静态常量成员，但不是整形或者枚举，无法通过编译
    const static int f = 0;	
};


int Base::c = 110;
const double Base::d = 3.14;
const char* const Base::e = "i am luffy";

//在C++98中，支持了在类声明中使用等号 = 加初始值 的方式，来初始化类中静态成员常量 。这种声明方式我们也称之为”就地”声明。而非静态成员变量的初始化则必须在构造函数中进行。
//g++ 1.c++98.cpp -o 1.c++98 -std=c++98

int main()
{
    
}



/* 作者: 苏丙榅
链接: https://subingwen.cn/cpp/quick_init/
来源: 爱编程的大丙
著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。 */